package tsg.lz.com;

public class Test3 {
    public static void main(String[] args) {
        /*定义一个长度为3的数组，数组存储1~3本图书对象作为初始数据，图书对象的学号，姓名各不相同。
        图书的属性：学号，姓名，价格。

        要求3：通过id删除图书信息
            如果存在，则删除，如果不存在，则提示删除失败。
        要求4：删除完毕之后，遍历所有图书信息。

        要求5：查询数组id为“10002”的图书，如果存在，则将他的价格+1*/


        //1.创建一个数组用来存储图书对象
        Book[] arr = new Book[3];
        //2.创建图书对象并添加到数组当中
        Book book1 = new Book(10001, "世界简史", 50);
        Book book2 = new Book(10002, "明朝那些事", 70);
        Book book3 = new Book(10003, "他改变了中国", 80);

        //3.把图书对象添加到数组当中
        arr[0] = book1;
        arr[1] = book2;
        arr[2] = book3;

        /*要求3：通过id删除图书信息
        如果存在，则删除，如果不存在，则提示删除失败。*/

        //要找到id在数组中对应的索引
        int index = getIndex(arr, 10002);
        if (index >= 0){
            //如果存在，则删除
            arr[index] = null;
            //遍历数组
            printArr(arr);
        }else{
            //如果不存在，则提示删除失败
            System.out.println("当前id不存在，删除失败");
        }





    }



    //1.我要干嘛？  找到id在数组中的索引
    //2.我需要什么？ 数组 id
    //3.调用处是否需要继续使用方法的结果？ 要
    public static int getIndex(Book[] arr , int id){
        for (int i = 0; i < arr.length; i++) {
            //依次得到每一个图书对象
            Book book = arr[i];
            //对stu进行一个非空判断
            if(book != null){
                int sid = book.getId();
                if(sid == id){
                    return i;
                }
            }
        }

        //当循环结束之后，还没有找到就表示不存在
        return -1;
    }

    public static void printArr(Book[] arr){
        for (int i = 0; i < arr.length; i++) {
            Book book = arr[i];
            if(book != null){
                System.out.println(book.getId() + ", " + book.getName() + ", " + book.getAge());
            }
        }
    }


}
